{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# float"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 标准：IEEE-754"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM \n",
    "* 指数应可正可负，所以IEEE规定，此处算出的次方须减去127才是真正的指数。所以float的指数可从 -126到128\n",
    "* S: 表示浮点数正负，1为负数，0为正数\n",
    "* E: 指数加上127后的值的二进制数\n",
    "* M: 24-bit的底数（只存储23-bit）\n",
    "* 4字节中的最高位，用来指示浮点数的正负，当最高位是1时，为负数，最高位是0时，为正数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 二进制表示\n",
    "百度搜：“0.3 二进制表示”"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# float举例"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## bitset\n",
    "\n",
    "* http://www.cplusplus.com/reference/bitset/bitset/\n",
    "* 使用 C++ bitset 操纵浮点数类型（float、double）\n",
    "* https://www.it610.com/article/4891536.htm"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 16.5\n",
    "https://blog.csdn.net/happylife1527/article/details/8059219"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 12.5\n",
    "https://blog.csdn.net/happylife1527/article/details/8059219"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 17.625\n",
    "https://blog.csdn.net/happylife1527/article/details/8059219\n",
    "\n",
    "https://www.bbsmax.com/A/B0zq26NrJv/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9.125\n",
    "https://blog.csdn.net/qingtingchen1987/article/details/7719259"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 178.125"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## -0.15625"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0\n",
    "浮点数0.0是比较特殊的，它并不按照上面说的浮点数的格式存储，浮点数0.0在内存里的存储是000.....000（全零）。"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# double\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 参考\n",
    "C/c++语言中 float double在内存中的存储结构详解\n",
    "\n",
    "https://blog.csdn.net/zhiren2011/article/details/44683319\n",
    "\n",
    "C++中 float 精度详解\n",
    "\n",
    "https://blog.csdn.net/qq_34719188/article/details/83351918"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
